//package com.kungfuhacking.wristbandpro.chat.activity;
//
//import android.graphics.Bitmap;
//import android.os.AsyncTask;
//import android.os.Bundle;
//import android.os.Handler;
//import android.support.v7.widget.DefaultItemAnimator;
//import android.support.v7.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
//import android.text.TextUtils;
//import android.util.Log;
//import android.view.View;
//import android.widget.AdapterView;
//import android.widget.ListView;
//import android.widget.TextView;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.kungfuhacking.wristbandpro.R;
//import com.kungfuhacking.wristbandpro.base.bean.RequestBean;
//import com.kungfuhacking.wristbandpro.base.bean.UploadBean;
//import com.kungfuhacking.wristbandpro.base.view.BaseActivity;
//import com.kungfuhacking.wristbandpro.chat.bean.AddressBean;
//import com.kungfuhacking.wristbandpro.chat.bean.TopicBea;
//import com.kungfuhacking.wristbandpro.chat.bean.TopicEntity;
//import com.kungfuhacking.wristbandpro.chat.presenter.ChooseNumsAdapter;
//import com.kungfuhacking.wristbandpro.chat.presenter.ChooseNumsRecyAdapter;
//import com.kungfuhacking.wristbandpro.chat.presenter.RemoveNumsAdapter;
//import com.kungfuhacking.wristbandpro.chat.presenter.RemoveNumsRecyAdapter;
//import com.kungfuhacking.wristbandpro.mqtt.MqttConstant;
//import com.kungfuhacking.wristbandpro.mqtt.MqttManager;
//import com.kungfuhacking.wristbandpro.mqtt.bean.MessageBean;
//import com.kungfuhacking.wristbandpro.mqtt.bean.TopicBean;
//import com.kungfuhacking.wristbandpro.net.BaseNoTObserver;
//import com.kungfuhacking.wristbandpro.net.RetrofitHttpUtil;
//import com.kungfuhacking.wristbandpro.sort.CharacterParser;
//import com.kungfuhacking.wristbandpro.sort.ChooseNumsComparator;
//import com.kungfuhacking.wristbandpro.sort.DelNumsComparator;
//import com.kungfuhacking.wristbandpro.sort.SideBarView;
//import com.kungfuhacking.wristbandpro.utils.CommonUtils;
//import com.kungfuhacking.wristbandpro.utils.Constant;
//import com.kungfuhacking.wristbandpro.utils.GroupFaceUtils;
//import com.kungfuhacking.wristbandpro.widget.swipe.DividerItemDecoration;
//import com.qiniu.android.http.ResponseInfo;
//import com.qiniu.android.storage.UpCompletionHandler;
//import com.qiniu.android.storage.UploadManager;
//
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import io.reactivex.disposables.CompositeDisposable;
//import io.reactivex.disposables.Disposable;
//
///**
// * 创建群聊时 选择群成员页面 / 群设置中添加,删除群成员页面
// * Created by Aaron on 16/1/21.
// */
//public class ChooseGroupNumsActivity extends BaseActivity implements View.OnClickListener {
//
//    private TextView tvdone;
//    private ListView lvcontracts;
//    //所有的联系人的集合
//    private List<AddressBean.ContactsEntity> contacts = new ArrayList<>();
//    //选中的联系人的集合
//    private List<AddressBean.ContactsEntity> choosedContacts = new ArrayList<>();
//    //等待删除的集合
//    private ArrayList<TopicEntity.UserListEntity> waitRemoveList = new ArrayList<>();
//    private ChooseNumsAdapter addAdapter;
//    private RecyclerView rv_nums;
//    private ChooseNumsRecyAdapter recyAdapter;
//    private String groupName;//群昵称
//
//    private String originalGroupName;//初始的群昵称, 如果初始群昵称修改过 则不再修改群昵称了
//    private ArrayList<TopicEntity.UserListEntity> copyList = new ArrayList<>();//添加群成员时copy的原成员的集合
//
//    private RemoveNumsAdapter removeAdapter;
//    private RemoveNumsRecyAdapter removeNumsRecyAdapter;
//    private TopicEntity addNums;//添加群成员
//    private TopicEntity removeNums;//删除群成员
//    private List<String> addedIdList = new ArrayList<>();//已经在群里的成员的集合
//
//    private List<String> imageUrls;//群聊头像的集合
//    private JSONObject j;
//    private int style;
//
//    /**
//     * 创建群 删除群 添加群成员
//     */
//    private static final int ADD_GROUP_NUMS = 0x32;
//    private static final int DEL_GROUP_NUMS = 0x33;
//    private static final int CREATE_GROUP = 0x34;
//    private String TAG = getClass().getSimpleName();
//
//    /**
//     * 汉字转换拼音的类
//     */
//    private CharacterParser characterParser;
//    //根据拼音来排列ListView里面的数据类
//    private ChooseNumsComparator comparator;
//    private DelNumsComparator delNumsComparator;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//
//        setContentView(R.layout.activity_choose_group_nums);
//
//        //实例化汉字转拼音类
//        characterParser = CharacterParser.getInstance();
//        comparator = new ChooseNumsComparator();
//        delNumsComparator = new DelNumsComparator();
//
//        initWidget();
//
//        originalGroupName = getIntent().getStringExtra("groupName");
//
//        Log.d(TAG, " ************ 群昵称   : " + originalGroupName);
//
////        switch (bundle.getInt("style", -1)) {
//        switch (getIntent().getIntExtra("style", -1)) {
//
//            case MqttConstant.CREATE_GROUP://创建群
//                getFriendList();  // 获取好友列表
//                break;
//
//            case MqttConstant.ADD_GROUP_NUMS://添加群成员
//
//                addNums = getIntent().getParcelableExtra("addNums");
//                getFriendList(); // 获取好友列表
//
//                break;
//
//            case MqttConstant.DELETE_GROUP_NUMS://删除群成员
//
//                removeNums = getIntent().getParcelableExtra("removeNums");
//                if (removeNums != null)
//                    copyList.addAll(removeNums.userList);
//                setDeleteData();
//
//                break;
//        }
//
//    }
//
//    private void initWidget() {
//
//        this.lvcontracts = (ListView) findViewById(R.id.lv_contracts);
//        this.tvdone = (TextView) findViewById(R.id.tv_done);
//        TextView tvcancel = (TextView) findViewById(R.id.tv_cancel);
//
//        rv_nums = (RecyclerView) findViewById(R.id.rv_nums);
//        SideBarView sidrbar = (SideBarView) findViewById(R.id.sidrbar);
//        rv_nums.setHasFixedSize(true);
//        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
//        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
//        rv_nums.setLayoutManager(linearLayoutManager);
//        rv_nums.setItemAnimator(new DefaultItemAnimator());
//        rv_nums.addItemDecoration(new DividerItemDecoration(this,
//                DividerItemDecoration.VERTICAL_LIST, getResources().getDrawable(R.color.bg_gray)));
//
//        tvdone.setOnClickListener(this);
//        tvcancel.setOnClickListener(this);
//
//        //设置右侧触摸监听
//        sidrbar.setOnTouchingLetterChangedListener(new SideBarView.OnTouchingLetterChangedListener() {
//
//            @Override
//            public void onTouchingLetterChanged(String s) {
//                //该字母首次出现的位置
//                int position = addAdapter.getPositionForSection(s.charAt(0));
//                if (position != -1)
//                    lvcontracts.setSelection(position);
//            }
//        });
//
//    }
//
//    /**
//     * 获取通讯录
//     */
//    private void getFriendList() {
//
//        JSONObject j = new JSONObject();
//        j.put("token", sp.getString(Constant.TOKEN, ""));
//
//        RetrofitHttpUtil.getInstance().myContacts(new BaseNoTObserver<AddressBean>() {
//            @Override
//            public void onHandleSuccess(AddressBean addressBean) {
//                hideLoading();
//                handleResult(addressBean.contacts);
//            }
//
//            @Override
//            public void onHandleError(String message) {
//                hideLoading();
//                showErr(message);
//            }
//
//            @Override
//            public void onSubscribe(Disposable d) {
//                showLoading("获取中...");
//                compositeDisposable.add(d);
//            }
//        }, new RequestBean().setData(j.toString()));
//
//    }
//
//    private CompositeDisposable compositeDisposable = new CompositeDisposable();
//
//
//    /**
//     * 处理数据
//     */
//    private void handleResult(List<AddressBean.ContactsEntity> cont) {
//
//        if (addNums != null && addNums.userList != null) {  //添加群成员的情况
//            //遍历 看好友是否已经在群里
//            for (int i = 0; i < cont.size(); i++) {
//
//                String pinyin = characterParser.getSelling(cont.get(i).user.nickName);
//                String sortString = pinyin.substring(0, 1).toUpperCase();
//
//                // 正则表达式 判断首字母是否是英文字母
//                if (sortString.matches("[A-Z]"))
//                    cont.get(i).user.sortLetters = sortString.toUpperCase();
//                else
//                    cont.get(i).user.sortLetters = "#";
//
//                for (int j = 0; j < addNums.userList.size(); j++) {
//
//                    if (addNums.userList.get(j).user.phoneNum.equals(cont.get(i).user.phoneNum)) {
//                        cont.get(i).hasAdded = true;
//                        addedIdList.add(cont.get(i).user.phoneNum);
//                        break;
//                    }
//
//                }
//            }
//        } else {  //删除群成员 和 创建群聊的情况
//
//            for (int i = 0; i < cont.size(); i++) {
//
//                String pinyin = characterParser.getSelling(cont.get(i).user.nickName);
//                String sortString = pinyin.substring(0, 1).toUpperCase();
//
//                // 正则表达式 判断首字母是否是英文字母
//                if (sortString.matches("[A-Z]"))
//                    cont.get(i).user.sortLetters = sortString.toUpperCase();
//                else
//                    cont.get(i).user.sortLetters = "#";
//            }
//
//        }
//
//        // 根据a-z进行排序源数据
//        Collections.sort(cont, comparator);
//
//        this.contacts = cont;
//
//        recyAdapter = new ChooseNumsRecyAdapter(this, choosedContacts);
//        rv_nums.setAdapter(recyAdapter);
//
//        addAdapter = new ChooseNumsAdapter(this, cont);
//        lvcontracts.setAdapter(addAdapter);
//
//        lvcontracts.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//            @Override
//            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//
//                try {
//
//                    if (contacts == null || addAdapter == null)
//                        return;
//
//                    //如果是群里已经存在的人 则return
//                    if (addedIdList != null && contacts.get(position) != null &&
//                            contacts.get(position).user != null &&
//                            addedIdList.contains(contacts.get(position).user.phoneNum))
//                        return;
//
//                    if (contacts.get(position).isSelect)
//                        choosedContacts.remove(contacts.get(position));
//                    else
//                        choosedContacts.add(contacts.get(position));
//
//                    contacts.get(position).isSelect = !contacts.get(position).isSelect;
//                    recyAdapter.notifyDataSetChanged();
//
//                    addAdapter.notifyDataSetChanged();
//
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//
//            }
//        });
//
//    }
//
//    /**
//     * 设置删除群成员数据
//     */
//    private void setDeleteData() {
//
//        if (removeNums == null || removeNums.userList == null)
//            return;
//
//        for (int i = 0; i < removeNums.userList.size(); i++) {
//
//            String pinyin = characterParser.getSelling(removeNums.userList.get(i).user.nickName);
//            String sortString = pinyin.substring(0, 1).toUpperCase();
//
//            // 正则表达式 判断首字母是否是英文字母
//            if (sortString.matches("[A-Z]"))
//                removeNums.userList.get(i).user.sortLetters = sortString.toUpperCase();
//            else
//                removeNums.userList.get(i).user.sortLetters = "#";
//        }
//
//        Collections.sort(removeNums.userList, delNumsComparator);
//
//        removeAdapter = new RemoveNumsAdapter(this, removeNums.userList);
//        lvcontracts.setAdapter(removeAdapter);
//
//        removeNumsRecyAdapter = new RemoveNumsRecyAdapter(ChooseGroupNumsActivity.this, waitRemoveList);
//        rv_nums.setAdapter(removeNumsRecyAdapter);
//
//        lvcontracts.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//            @Override
//            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//
//                if (removeNums.userList == null || removeNums.userList.get(position) == null)
//                    return;
//
//                if (removeNums.userList.get(position).user != null
//                        && sp.getString(Constant.MOBILE, "").equals(removeNums.userList.get(position).user.phoneNum))
//                    return;//不能删除自己
//
//                if (removeNums.userList.get(position).isSelect) {
//                    waitRemoveList.remove(removeNums.userList.get(position));
//                    if (copyList != null)
//                        copyList.add(removeNums.userList.get(position));
//                } else {
//                    waitRemoveList.add(removeNums.userList.get(position));
//                    if (copyList != null)
//                        copyList.remove(removeNums.userList.get(position));
//                }
//
//                removeNums.userList.get(position).isSelect = !removeNums.userList.get(position).isSelect;
//                removeNumsRecyAdapter.notifyDataSetChanged();
//
//                removeAdapter.notifyDataSetChanged();
//
//            }
//        });
//    }
//
//    @Override
//    public void onClick(View v) {
//        switch (v.getId()) {
//
//            case R.id.tv_done://确定
//
//                //判断是 创建群的 还是添加群成员的 还是删除群成员的
//                chooseOperation();
//
//                break;
//
//            case R.id.tv_cancel://取消
//                finish();
//                break;
//
//        }
//    }
//
//    /**
//     * 判断是 创建群的 还是添加群成员的 还是删除群成员的
//     */
//    private void chooseOperation() {
//
//        if (removeNums != null && removeNums.userList != null) {//删除群成员
//
//            style = DEL_GROUP_NUMS;
//            if (waitRemoveList == null || waitRemoveList.size() < 1) {
//                showErr("请选择删除的成员");
//                return;
//            }
//            deleteNums();
//
//        } else if (addNums != null && addNums.userList != null) {//添加群成员
//
//            if (!CommonUtils.isFriendOrGroupNum(sp, this, addNums.topic))
//                return;
//            if (choosedContacts == null || choosedContacts.size() < 1) {
//                showErr("请选择添加的好友");
//                return;
//            }
//            style = ADD_GROUP_NUMS;
//            addGroupNums();
//
//        } else {//创建群
//            style = CREATE_GROUP;
//            createGroup();
//        }
//
//    }
//
//    /**
//     * 删除群成员
//     */
//    private void deleteNums() {
//
//        if (removeNums == null || removeNums.userList == null || copyList == null)
//            return;
//
//        if (copyList.size() < 3) {
//            showErr("群聊不能少于三人!");
//            return;
//        }
//
//        j = new JSONObject();
//        List<String> imageUrls = new ArrayList<>();//群聊头像的集合
//
//        StringBuilder sbList = new StringBuilder();
//
//        boolean change = false;//群昵称是否修改过
//        for (int i = 0; i < removeNums.userList.size(); i++) {
//
//            if (!originalGroupName.contains(removeNums.userList.get(i).user.nickName)) {//不包含, 说明修改了群名片
//                change = true;
//                break;
//            }
//
//        }
//
//        if (change) //修改过, 群昵称 还设置为原来的群昵称
//            sbList.append(originalGroupName);
//
//        //删除之后的 成员集合
//        List<Object> afterList = new ArrayList<Object>();
//        if (change)
//            getNumsList(afterList, copyList, null, imageUrls);
//        else
//            getNumsList(afterList, copyList, sbList, imageUrls);
//
//        //删除的 成员集合
//        List<Object> removeNumList = new ArrayList<Object>();
//        getNumsList(removeNumList, waitRemoveList, null, null);
//
//        if (!change) {
//            //删除最后一个, 符号
//            sbList.delete(sbList.length() - 1, sbList.length());
//            if (afterList.size() > 9)
//                sbList.append("...");
//
//        }
//
//        addData2J(afterList, new ArrayList<>(), removeNumList, removeNums.topic, sbList.toString());
//
//        //制作群聊头像
//        this.imageUrls = imageUrls;
//        new MyAsyncTask().execute();
//
//    }
//
//    /**
//     * 给json集合赋值数据
//     */
//    private void getNumsList(List<Object> userList, ArrayList<TopicEntity.UserListEntity> numList, StringBuilder sb, List<String> imageUrls) {
//
//        if (numList == null)
//            return;
//
//        for (int i = 0; i < numList.size(); i++) {
//
//            if (numList.get(i) == null && numList.get(i).user == null)
//                continue;
//
//            Map<String, Object> num = new HashMap<String, Object>();
//
//            if (imageUrls != null)
//                imageUrls.add(numList.get(i).user.imgUrl);//制作头像的图片集合
//
//            num.put("imgUrl", numList.get(i).user.imgUrl);
//            num.put("nickName", numList.get(i).user.nickName);
//            num.put("phoneNum", numList.get(i).user.phoneNum);
//            num.put("isAdmin", numList.get(i).isAdmin);
//
//            userList.add(num);
//
//            if (sb != null) {
//                if (i > 9)//如果人数大于9个 群昵称就不再添加了
//                    continue;
//                sb.append(numList.get(i).user.nickName).append("、");
//
//            }
//        }
//    }
//
//    /**
//     * 添加群成员
//     */
//    private void addGroupNums() {
//
//        if (choosedContacts == null)
//            return;
//
//        j = new JSONObject();
//
//        List<Object> userList = new ArrayList<Object>();
//        List<String> imageUrls = new ArrayList<>();//群聊头像的集合
//
//        StringBuilder sbNewName = new StringBuilder();
//
//        boolean change = false;//群昵称是否修改过
//        if (!TextUtils.isEmpty(originalGroupName)) {
//
//            for (int i = 0; i < addNums.userList.size(); i++) {
//
//                String nickName = addNums.userList.get(i).user.nickName;
//
//                if (!originalGroupName.contains(nickName)) {//不包含, 说明修改了群名片
//                    change = true;
//                    break;
//                }
//
//            }
//
//            if (change) //修改过, 群昵称 还设置为原来的群昵称
//                sbNewName.append(originalGroupName);
//
//        }
//
//        //获取新的成员的集合
//        if (change)
//            getNewNumsList(userList, null, imageUrls);
//        else
//            getNewNumsList(userList, sbNewName, imageUrls);
//
//        List<Object> addList = new ArrayList<Object>();
//
//        addList.addAll(userList);
//
//        //获取 群原来成员的集合
//        if (addNums != null) {
//            if (change)
//                getNumsList(userList, addNums.userList, null, imageUrls);
//            else
//                getNumsList(userList, addNums.userList, sbNewName, imageUrls);
//        }
//
//        if (!change) {
//            //删除最后一个, 符号
//            sbNewName.delete(sbNewName.length() - 1, sbNewName.length());
//            if (userList.size() > 9)
//                sbNewName.append("...");
//        }
//
//        addData2J(userList, addList, new ArrayList<>(), addNums.topic, sbNewName.toString());
//
//        //制作群聊头像
//        this.imageUrls = imageUrls;
//        new MyAsyncTask().execute();
//    }
//
//    /**
//     * 创建群聊
//     */
//    private void createGroup() {
//
//        if (choosedContacts == null)
//            return;
//
//        if (choosedContacts.size() < 2) {
//            showErr("至少选择两个人");
//            return;
//        }
//
//        j = new JSONObject();
//        List<Object> userList = new ArrayList<>();
//        List<String> imageUrls = new ArrayList<>();//群聊头像的集合
//
//        //添加本人到群里
//        addMy2Group(imageUrls, userList);
//
//        StringBuilder groupName = new StringBuilder();
//        groupName.append(sp.getString(Constant.NICKNAME, "")).append("、");
//        //添加成员到群里
//        getNewNumsList(userList, groupName, imageUrls);
//
//        //删除最后一个, 符号
//        groupName.delete(groupName.length() - 1, groupName.length());
//        if (choosedContacts.size() > 9)
//            groupName.append("...");
//
//        addData2J(userList, userList, new ArrayList<>(), "", groupName.toString());
//
//        this.imageUrls = imageUrls;
//
//        //制作群聊头像
//        new MyAsyncTask().execute();
//
//    }
//
//    /**
//     * 往 json中添加数据
//     *
//     * @param userList   操作之后的群成员集合
//     * @param addList    添加的成员集合
//     * @param removeList 删除群成员的集合
//     * @param topic      添加或者删除的群的 topic
//     * @param groupName  群昵称
//     */
//    private void addData2J(List<Object> userList, List<Object> addList, List<Object> removeList, String topic, String groupName) {
//
//        if (j == null)
//            return;
//
//        j.put("userList", userList);//操作之后的群成员集合
//        j.put("addList", addList);//添加的成员集合
//        j.put("removeList", removeList);//删除群成员的集合
//        j.put("topic", topic);//添加或者删除的群的 topic
//        j.put("groupName", groupName);
//        //如果 原始群昵称不包含 原始群成员的昵称时, 则不修改群昵称
//        j.put("token", sp.getString(Constant.TOKEN, ""));
//
//        this.groupName = groupName;
//    }
//
//    /**
//     * 获取新的群成员的集合
//     */
//    private void getNewNumsList(List<Object> addList, StringBuilder sbName, List<String> imageUrls) {
//
//        for (int i = 0; i < choosedContacts.size(); i++) {
//
//            if (choosedContacts.get(i) == null || choosedContacts.get(i).user == null)
//                continue;
//
//            Map<String, Object> num = new HashMap<String, Object>();
//
//            imageUrls.add(choosedContacts.get(i).user.imgUrl);//制作头像的图片集合
////            LogUtil.e("tag", " 群成员的头像 :" + choosedContacts.get(i).user.imgUrl);
//            num.put("imgUrl", choosedContacts.get(i).user.imgUrl);
//            num.put("nickName", choosedContacts.get(i).user.nickName);
//            num.put("phoneNum", choosedContacts.get(i).user.phoneNum);
//            num.put("isAdmin", 0);
//
//            addList.add(num);
//
//            //群昵称
//            if (sbName != null) {
//                if (i > 9)//如果人数大于9个 群昵称就不再添加了
//                    continue;
//                sbName.append(choosedContacts.get(i).user.nickName).append("、");
//            }
//
//        }
//
//    }
//
//    /**
//     * 添加本人到群里
//     */
//    private void addMy2Group(List<String> imageUrls, List<Object> userList) {
//
//        //添加本人
//        Map<String, Object> my = new HashMap<String, Object>();
//
//        my.put("imgUrl", sp.getString(Constant.USER_IMG, ""));
//        my.put("nickName", sp.getString(Constant.NICKNAME, ""));
//        my.put("phoneNum", sp.getString(MqttConstant.USERID, ""));
//        my.put("isAdmin", 1);
//
//        userList.add(my);
//        imageUrls.add(sp.getString(Constant.USER_IMG, ""));//添加本人的头像
//    }
//
////    private ProgressDialog show;
//
//    private class MyAsyncTask extends AsyncTask<String, String, Bitmap> {
//
//        @Override
//        protected void onPreExecute() {
//            super.onPreExecute();
////            show = ProgressDialog.show(ChooseGroupNumsActivity.this, "请稍候", "创建中...");
//            showLoading("创建中...");
//        }
//
//        @Override
//        protected Bitmap doInBackground(String... params) {
//            return GroupFaceUtils.createGroupFace(ChooseGroupNumsActivity.this, imageUrls);
//        }
//
//        @Override
//        protected void onPostExecute(final Bitmap bitmap) {
//            getQiniuToken(CommonUtils.compressByte(bitmap));
//        }
//    }
//
//    public void getQiniuToken(final byte[] bytes) {
//
//        //获取发送的图片的七牛地址
//        JSONObject j = new JSONObject();
//        j.put("token", getToken());
//        RetrofitHttpUtil.getInstance().uploadQiNiuToken(new BaseNoTObserver<UploadBean>() {
//            @Override
//            public void onHandleSuccess(final UploadBean uploadBean) {
//                hideLoading();
//                if (uploadBean.getCode() == 0)
//                    upLoadPic(uploadBean, bytes);//根据token上传图片
//                else showErr(uploadBean.getCode_msg());
//            }
//
//            @Override
//            public void onHandleError(String message) {
//                hideLoading();
//                showErr(message);
//            }
//
//            @Override
//            public void onSubscribe(Disposable d) {
//                compositeDisposable.add(d);
//            }
//        }, new RequestBean().setData(j.toString()));
//    }
//
//    /**
//     * 上传图片
//     */
//    protected void upLoadPic(final UploadBean uploadBean, byte[] bytes) {
//
//        showLoading("上传中...");
//        UploadManager uploadManager = new UploadManager();
//        uploadManager.put(bytes, uploadBean.getPath(), uploadBean.getToken(),
//                new UpCompletionHandler() {
//                    @Override
//                    public void complete(String s, ResponseInfo responseInfo, org.json.JSONObject jsonObject) {
//
//                        hideLoading();
//                        if (responseInfo.isOK()) {
//                            //创建群聊
//                            createGroupChat(uploadBean.getDomain() + uploadBean.getPath());
//                        } else
//                            showErr("图片上传失败");
//                    }
//
//                }, null);
//    }
//
//    /**
//     * 请求创建群接口
//     */
//    private void createGroupChat(final String urlPath) {
//
//        if (j == null)
//            return;
//
//        j.put("groupImgUrl", urlPath);//群头像
//
//        RetrofitHttpUtil.getInstance().joinGroup(new BaseNoTObserver<TopicBea>() {
//            @Override
//            public void onHandleSuccess(final TopicBea topicBea) {
//
//                hideLoading();
//
//                final MessageBean mb = new MessageBean();
//                mb.messageType = MqttConstant.MQTTMESSAGENOTICE;
//                mb.sendId = sp.getString(MqttConstant.USERID, "");
//                mb.sendName = sp.getString(Constant.NICKNAME, "");
//                mb.sendPic = sp.getString(Constant.USER_IMG, "");
//                mb.receiveName = j.getString("groupName");
//                mb.receivePic = urlPath;
//
//                switch (style) {
//
//                    case CREATE_GROUP://创建群
//                        mb.content = sp.getString(Constant.NICKNAME, "") + "创建了群聊";
//                        break;
//
//                    case DEL_GROUP_NUMS://删除群成员
//                        mb.content = sp.getString(Constant.NICKNAME, "") + "把" + getRemoveNums() + "移出本群";
//                        break;
//
//                    case ADD_GROUP_NUMS://添加群成员
//                        mb.content = sp.getString(Constant.NICKNAME, "") + "邀请了" + getAddNums() + "加入群聊";
//                        break;
//
//                }
//
//                mb.sendDate = System.currentTimeMillis();
//                mb.channelId = topicBea.getTopic();
//                Log.d(TAG, " 创建群时 群聊的 topic :" + topicBea.getTopic());
//                style = 0; //置为初始值
//
//                //延迟一秒后发 系统通知
//                new Handler().postDelayed(new Runnable() {
//                    @Override
//                    public void run() {
//                        try {
//                            MqttManager.getInstance().setMessage(topicBea.getTopic(), mb);
//                        } catch (Exception e) {
//                            e.printStackTrace();
//                        }
//                    }
//                }, 1000);
//
//                //插入群聊的信息
//                updateInfo(mb.channelId, urlPath, mb.receiveName);
//
//                //进入群聊的页面
//                mb.channelId = topicBea.getTopic();//群聊的topic
//                Bundle b = new Bundle();
//                b.putParcelable("contact", mb);
//                nextActivityWithBundle(ChatActivity.class, b);
//                finish();
//            }
//
//            @Override
//            public void onHandleError(String message) {
//                showErr(message);
//            }
//
//            @Override
//            public void onSubscribe(Disposable d) {
//                compositeDisposable.add(d);
//                showLoading("创建中...");
//            }
//        }, new RequestBean().setData(j.toString()));
//
//    }
//
//    private void updateInfo(String topic, String imgUrl, String name) {
//
//        if (MqttConstant.topicMap == null)
//            MqttConstant.topicMap = (Map<String, TopicBean>) JSON.parse(sp.getString(MqttConstant.TOPIC_MAP, ""));
//
//        TopicBean tb = new TopicBean();
//        tb.topic = topic;
//        tb.topicImg = imgUrl;
//        tb.topicName = name;
//        MqttConstant.topicMap.put(topic, tb);
//
//        sp.edit().putString(MqttConstant.TOPIC_MAP, JSON.toJSONString(MqttConstant.topicMap, true)).apply();
//
//    }
//
//    /**
//     * 获取添加的群成员的名称
//     */
//    private String getAddNums() {
//
//        String addNums = "";
//        if (choosedContacts != null && choosedContacts.size() > 0) {
//
//            StringBuilder sb = new StringBuilder();
//
//            for (int i = 0; i < choosedContacts.size(); i++) {
//                sb.append(choosedContacts.get(i).user.nickName).append("、");
//            }
//
//            addNums = sb.substring(0, sb.length() - 1);
//
//        }
//        return addNums;
//    }
//
//    /**
//     * 获取 删除的群成员的名称
//     */
//    private String getRemoveNums() {
//
//        if (waitRemoveList != null && waitRemoveList.size() > 0) {
//
//            StringBuilder sb = new StringBuilder();
//
//            for (int i = 0; i < waitRemoveList.size(); i++) {
//                sb.append(waitRemoveList.get(i).user.nickName).append("、");
//            }
//
//            return sb.substring(0, sb.length() - 1);
//
//        }
//        return "";
//    }
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        compositeDisposable.clear();
//    }
//}
